A critical compatibility concern is how to make old X clients (and remote D11 programs) that generate X11 protocol work with the D11 window system. The solution is an X11-to-D11 gateway process that converts X11 protocol requests to the X server's standard ports (such as TCP port 6000) into D11 protected procedure calls. This gateway process is a standard Unix process that attaches to the D11 active context. The process makes ``raw protocol'' protected procedure calls that pass raw protocol buffers to the D11 kernel to be unpacked and executed. A single gateway process could broker multiple X11 protocol connections simultaneously, with each connection having its own associated APP. The gateway process is also responsible for correctly returning events, replies, and errors to the appropriate X11 protocol connections.
One might think the X11-to-D11 gateway would be inefficient relative to a traditional X server. This does not have to be the case. Because D11 protected procedure calls require no copying in passing protocol to the D11 kernel, there is no more protocol copying than when using a traditional X server.